const TagService = require('@/service/article/tag');
const Response  = require('@/utils/response');
class TagController {

  async getTagList(ctx) {
    try {
      const params = ctx.request.body; // 获取请求参数

      // 处理分页参数
      const tags = await TagService.getTagList(params);
      if (tags) {
        return Response.success(ctx, tags);
      } else {
        return Response.error(ctx, '获取标签列表失败');
      }
    } catch (error) {
      return Response.error(ctx, '获取标签列表失败', 500, error);
    }
  }

  async addTag(ctx, next) {
    try {
      const { name } = ctx.request.body; // 获取请求参数
      const newTag = await TagService.addTag(name); // 调用服务层方法
      if (newTag) {
        return Response.success(ctx, newTag, '添加标签成功');
      } else {
        return Response.error(ctx, '添加标签失败');
      }
    } catch (error) {
      return Response.error(ctx, '添加标签失败', 500, error);
    }
  }

  async deleteTag(ctx) {
    try {
      const { id } = ctx.request.body; // 获取请求参数
      const res = await TagService.deleteTag(id); // 调用服务层方法
      if (res) {
        return Response.success(ctx, res, '删除标签成功');
      } else {
        return Response.error(ctx, '删除标签失败');
      }
    } catch (error) {
      return Response.error(ctx, '删除标签失败', 500, error);
    }
  }

  async updateTag(ctx) {
    try {
      const { id, name } = ctx.request.body; // 获取请求参数
      const res = await TagService.updateTag({ id, name }); // 调用服务层方法
      if (res) {
        return Response.success(ctx, res, '更新标签成功');
      } else {
        return Response.error(ctx, '更新标签失败');
      }
    } catch (error) {
      return Response.error(ctx, '更新标签失败', 500, error);
    }
  }
    
}

module.exports = new TagController();